package com.yimi.policyservice.service;

import com.github.pagehelper.Page;
import com.yimi.policyservice.dto.policyaddr.IdsBean;
import com.yimi.policyservice.dto.role.*;
import com.yimi.policyservice.entity.base.system.SysUser;

import java.util.List;

public interface RoleService {
    /**
     * 删除
     * @param id
     */
    void delete(String id) ;

    /**
     * 更新
     * @param bean
     * @param id
     */
    void update(RoleDto bean,String id);

    /**
     * 创建
     * @param bean
     * @return
     */
    SysRole4Get create(RoleDto bean) ;

    /**
     * 列出所有角色
     * @return
     */
    List<SysRole4Get> findAll() ;

    /**
     * 搜索角色
     * @param key
     * @return
     */
    Page<SysRole4Get> search(String key);

    MenuTreeDto getMenuTree();

    /**
     * 添加角色权限
     * @param id
     * @param ids
     * @param type
     */
    void setPermission(String id, List<String> ids, int type);

    /**
     * 获取角色菜单权限
     * @param id
     * @return
     */
    IdsBean getRoleMenuIds(String id);

    List<MenuTreeDto> getPagePermisssion();

    IdsBean getRolePages(String id);

    SysRole4Get findOne(String id);

    /**
     * 设置用户数据权限
     * @param roles
     * @param sysUser
     * @param userId
     */
    void addUserDataRole(List<DataRoleDto> roles, SysUser sysUser,String userId);

    List<String> getUserDataPermissionByType(String userId, int type);
}
